package com.softtown.modules.workflow.service;

import com.github.pagehelper.PageInfo;
import com.softtown.common.service.BaseService;
import com.softtown.modules.workflow.dto.SwfPhaseNameDefDTO;
import com.softtown.modules.workflow.dto.SwfPhaseNameDefPageDTO;
import com.softtown.modules.workflow.entity.SwfPhaseNameDefEntity;

import java.util.List;

/**
 * @author: Dingyayong
 * @Date: 2019/8/22 13:52
 * @Description:
 */
public interface SwfPhaseNameDefService extends BaseService<SwfPhaseNameDefEntity> {
    /**
     * 通过id找出审批段名字
     * @param  id
     * @return  SwfPhaseNameDefEntity
     * @author Dingyayong
     * @date 2019/8/22 10:08
     */
    SwfPhaseNameDefEntity getSwfPhaseNameById(Long id);

    /**
     * 通过name找出审批段名字
     * @param  name
     * @param compId
     * @return  SwfPhaseNameDefEntity
     * @author Dingyayong
     * @date 2019/8/22 10:08
     */
    List<SwfPhaseNameDefEntity> getSwfPhaseNameByName(String  name,Long compId);

    /**
     * 通过公司id找出审批段名字List
     * @param  swfPhaseNameDefPageDTO
     * @return  SwfPhaseNameDefEntity
     * @author Dingyayong
     * @date 2019/8/22 10:08
     */
    PageInfo<SwfPhaseNameDefEntity> getPhaseNameDefList(SwfPhaseNameDefPageDTO swfPhaseNameDefPageDTO);

    /**
     * 通过公司id找出审批段名字List
     * @param  swfPhaseNameDefDTO
     * @return  SwfPhaseNameDefEntity
     * @author Dingyayong
     * @date 2019/8/22 10:08
     */
    List<SwfPhaseNameDefEntity> getAprvNameList(SwfPhaseNameDefDTO swfPhaseNameDefDTO);


    /**
     * 通过公司id找出状态审批段名字List
     * @param  swfPhaseNameDefDTO
     * @return  SwfPhaseNameDefEntity
     * @author Dingyayong
     * @date 2019/8/22 10:08
     */
    List<SwfPhaseNameDefEntity> getAprvNameByStatusList(SwfPhaseNameDefDTO swfPhaseNameDefDTO);


    /**
     * 添加公司审批段名字
     * @param  swfPhaseNameDefDTO
     * @return  SwfPhaseNameDefEntity
     * @author Dingyayong
     * @date 2019/8/22 10:08
     */
    void addPhaseNameDef(SwfPhaseNameDefDTO swfPhaseNameDefDTO);
    /**
     * 激活停用审批段名称定义
     * @param  swfPhaseNameDefDTO
     * @return  SwfPhaseNameDefEntity
     * @author Dingyayong
     * @date 2019/8/22 10:08
     */
    void activePhaseNameDef(SwfPhaseNameDefDTO swfPhaseNameDefDTO);
    /**
     * 编辑审批段名称定义
     * @param  swfPhaseNameDefDTO
     * @return  SwfPhaseNameDefEntity
     * @author Dingyayong
     * @date 2019/8/22 10:08
     */
    void updatePhaseNameDef(SwfPhaseNameDefDTO swfPhaseNameDefDTO);

    /**
     * 删除审批段名称定义
     * @param  swfPhaseNameDefDTO
     * @return  SwfPhaseNameDefEntity
     * @author Dingyayong
     * @date 2019/8/22 10:08
     */
    void deletePhaseNameDef(SwfPhaseNameDefDTO swfPhaseNameDefDTO);
}
